package com.gimi.cloud.jimi.dto.base;

import com.alibaba.fastjson.annotation.JSONField;
import com.gimi.cloud.jimi.dto.sys.SysMenuDTO;

import java.io.Serializable;
import java.util.Date;
import java.util.Map;

/**
 * 基础数据传输对象
 *
 * @author wbj
 * @date 2017-07-10
 */
public class BaseDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 当前请求唯一标识
     */
    @JSONField(serialize = false)
    private String uuid;
    /**
     * 当前登录用户id
     */
    @JSONField(serialize = false)
    private Integer uid;
    /**
     * 当前操作人名称
     */
    @JSONField(serialize = false)
    private String uname;
    /**
     * 当前登录角色id
     */
    @JSONField(serialize = false)
    private Integer cuRoId;
    /**
     * 当前请求地址
     */
    @JSONField(serialize = false)
    private String url;
    /**
     * 当前请求的菜单id
     */
    private Integer mid;
    /**
     * 当前请求服务名
     */
    @JSONField(serialize = false)
    private String serviceName;
    /**
     * 当前请求ip
     */
    @JSONField(serialize = false)
    private String ip;
    /**
     * 当前登录管理员的token
     */
    @JSONField(serialize = false)
    private String authToken;

    /**
     * 所属合作方id
     */
    private Integer partnerId;

    /**
     * 添加人
     */
    private Integer addUid;

    /**
     * 添加人名称
     */
    private String addUname;

    /**
     * 添加时间
     */
    private Date addTime;

    /**
     * 更新人
     */
    private Integer updateUid;

    /**
     * 更新人名称
     */
    private String updateUname;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 是否删除（1：已删除，0：未删除）
     */
    private Integer isDelete;

    /**
     * 版本控制工具
     */
    private Integer version;

    /**
     * 备注
     */
    private String baRemark;


    /**
     * 请求参数
     */
    @JSONField(serialize = false)
    private Map<String, String> param;
    /**
     * post参数，传递方式: {postData:{"":"","":""}}
     */
    @JSONField(serialize = false)
    private Map<String, String> postData;
    /**
     * 当前请求对应的菜单对象
     */
    @JSONField(serialize = false)
    private SysMenuDTO menu;

    /**
     * 获取所属合作方id
     *
     * @return partner_id - 所属合作方id
     */
    public Integer getPartnerId() {
        return partnerId;
    }

    /**
     * 设置所属合作方id
     *
     * @param partnerId 所属合作方id
     */
    public void setPartnerId(Integer partnerId) {
        this.partnerId = partnerId;
    }

    /**
     * 获取添加人
     *
     * @return add_uid - 添加人
     */
    public Integer getAddUid() {
        return addUid;
    }

    /**
     * 设置添加人
     *
     * @param addUid 添加人
     */
    public void setAddUid(Integer addUid) {
        this.addUid = addUid;
    }

    /**
     * 获取添加人名称
     *
     * @return add_uname - 添加人名称
     */
    public String getAddUname() {
        return addUname;
    }

    /**
     * 设置添加人名称
     *
     * @param addUname 添加人名称
     */
    public void setAddUname(String addUname) {
        this.addUname = addUname;
    }

    /**
     * 获取添加时间
     *
     * @return add_time - 添加时间
     */
    public Date getAddTime() {
        return addTime;
    }

    /**
     * 设置添加时间
     *
     * @param addTime 添加时间
     */
    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    /**
     * 获取更新人
     *
     * @return update_uid - 更新人
     */
    public Integer getUpdateUid() {
        return updateUid;
    }

    /**
     * 设置更新人
     *
     * @param updateUid 更新人
     */
    public void setUpdateUid(Integer updateUid) {
        this.updateUid = updateUid;
    }

    /**
     * 获取更新人名称
     *
     * @return update_uname - 更新人名称
     */
    public String getUpdateUname() {
        return updateUname;
    }

    /**
     * 设置更新人名称
     *
     * @param updateUname 更新人名称
     */
    public void setUpdateUname(String updateUname) {
        this.updateUname = updateUname;
    }

    /**
     * 获取更新时间
     *
     * @return update_time - 更新时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置更新时间
     *
     * @param updateTime 更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取是否删除（1：已删除，0：未删除）
     *
     * @return is_delete - 是否删除（1：已删除，0：未删除）
     */
    public Integer getIsDelete() {
        return isDelete;
    }

    /**
     * 设置是否删除（1：已删除，0：未删除）
     *
     * @param isDelete 是否删除（1：已删除，0：未删除）
     */
    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }

    /**
     * 获取版本控制工具
     *
     * @return version - 版本控制工具
     */
    public Integer getVersion() {
        return version;
    }

    /**
     * 设置版本控制工具
     *
     * @param version 版本控制工具
     */
    public void setVersion(Integer version) {
        this.version = version;
    }

    /**
     * 获取备注
     *
     * @return ba_remark - 备注
     */
    public String getBaRemark() {
        return baRemark;
    }

    /**
     * 设置备注
     *
     * @param baRemark 备注
     */
    public void setBaRemark(String baRemark) {
        this.baRemark = baRemark;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public Integer getCuRoId() {
        return cuRoId;
    }

    public void setCuRoId(Integer cuRoId) {
        this.cuRoId = cuRoId;
    }

    public Integer getMid() {
        return mid;
    }

    public void setMid(Integer mid) {
        this.mid = mid;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public SysMenuDTO getMenu() {
        return menu;
    }

    public void setMenu(SysMenuDTO menu) {
        this.menu = menu;
    }

    public Map<String, String> getParam() {
        return param;
    }

    public void setParam(Map<String, String> param) {
        this.param = param;
    }

    public Map<String, String> getPostData() {
        return postData;
    }

    public void setPostData(Map<String, String> postData) {
        this.postData = postData;
    }

    public String getServiceName() {
        return serviceName;
    }

    public void setServiceName(String serviceName) {
        this.serviceName = serviceName;
    }

    public String getAuthToken() {
        return authToken;
    }

    public void setAuthToken(String authToken) {
        this.authToken = authToken;
    }
}
